/**
 * 主要思想： 基于已有的对象创建新的对象，同时还不必因此创建自定义对象
 * 优点：
 *      1. 在没有必要创建构造函数，仅让一个对象与另一个对象保持相似的情况下，原型式继承是可以胜任的
 * 缺陷：
 *      1. 同原型链实现继承一样，包含引用类型值的属性会被所有实例共享
 */

function object (o) {
  function F() {}
  F.prototype = o
  return new F()
}

const person = {
  name: 'LYM',
  hobbies: ['reading', 'running']
}

const person1 = Object.create(person)
person1.name = 'Yeoman'
person1.hobbies.push('coding')
const person2 = Object.create(person)
person2.name = 'Lym'
person2.hobbies.push('jogging')
console.log(person.hobbies)
console.log(person1.hobbies)
console.log(person2.hobbies)
console.log(person.name)
console.log(person1.name)
console.log(person2.name)
